It is important to improve efficiency of business activities, by analyzing, detecting, and reacting to phenomena each made up of a plurality of events having regularity. To detect events, a conventional technique is known by which one or more sets of events having predetermined regularity are detected from match data, by defining a query and performing a matching procedure on the query and the match data. The query is defined by event conditions each of which identifies an event in a one-to-one correspondence and an interval condition indicating an interval between the event conditions.
FIG. 29 is a first diagram of an example of a query used for explaining the conventional technique. A query 10 is an example of a query used for detecting a phenomenon where merchandise is purchased within three days of issuance of a coupon. In the example illustrated in FIG. 29, the query 10 includes nodes 11 and 12, while the node 11 represents an event condition “a coupon is issued”, whereas the node 12 represents an event condition “merchandise is purchased”. Further, the interval condition between the nodes 11 and 12 is “0 to 3 days”.
FIG. 30 is a first drawing of an example of the match data used for explaining the conventional technique. In match data 20 in FIG. 30, each of the dates on which an event occurred is kept in correspondence with the corresponding event. The horizontal axis in FIG. 30 expresses dates. For instance, the example in FIG. 30 illustrates that the event “a coupon is issued” occurred on the dates 1/2, 1/5, and 1/12.
According to the conventional technique, when a matching procedure is performed on the query 10 and the match data 20, a set made up of the event “a coupon is issued” that occurred on the date “1/5” and the event “merchandise is purchased” that occurred on the date “1/6” is found in the search, because the interval between the event “a coupon is issued” and the event “merchandise is purchased” is “0”, which satisfies the interval condition “0 to 3 days”. Thus, according to the conventional technique, the set made up of the event “a coupon is issued” that occurred on the date “1/5” and the event “merchandise is purchased” that occurred on the date “1/6” is output as a detection result.
Next, a query having a window-type serial pattern will be explained. In a query having the window-type serial pattern, windows are connected in series, the windows each not defining the order of occurrence of events. FIG. 31 is a diagram of an example of a query having the window-type serial pattern. In a query 30 illustrated in FIG. 31, a window 31 and a window 32 are defined, while the window 31 and the window 32 are connected in series. For the interval between the window 31 and the window 32, an interval condition “5 to 8 minutes” is set.
The window 31 includes event conditions 31a, 31b, and 31c. The event condition 31a is a condition under which an event “pick up merchandise by hand” occurs. The event condition 31b is a condition under which an event “greeted by a salesperson” occurs. The event condition 31b is a condition under which an event “a limited-time sale is held” occurs.
The window width condition of the window 31 is 4 minutes. Thus, if events satisfying the event conditions 31a, 31b, and 31c occur during the time period between a certain start time and 4 minutes later, the condition of the window 31 is satisfied.
The window 32 includes event conditions 32a and 32b. The event condition 32a is a condition under which an event “purchase merchandise” occurs. The event condition 32b is a condition under which an event “price is reduced by a salesperson” occurs.
The window width condition of the window 32 is 3 minutes. Thus, if events satisfying the event conditions 32a and 32b occur during the time period between a certain start time and 3 minutes later, the condition of the window 32 is satisfied.
According to the conventional technique, the windows are set within the match data, and one or more sets of events each satisfying the conditions of the windows 31 and 32 are detected from the match data while shifting the windows. After that, according to the conventional technique, if the interval between a time period satisfying the condition of the window 31 and a time period satisfying the condition of the window 32 satisfies the interval condition, one or more sets of events in the match data that are included in the windows 31 and 32 are output as a search result of the query.
FIG. 32 is a drawing for explaining an exemplary method according to a conventional technique. A situation will be explained in which sets of events within match data 40 that satisfy the conditions of the query 30 illustrated in FIG. 31 are detected. In the match data 40 illustrated in FIG. 31, each of the times at which an event occurred is kept in correspondence with the corresponding event. The horizontal axis in the match data 40 expresses time. For the sake of convenience in explanation, in the match data 40, an event “pick up merchandise by hand” is referred to as “A”, an event “greeted by a salesperson” is referred to as “B”, “a limited-time sale is held” is referred to as “C”, an event “purchase merchandise” is referred to as “D”, and an event “price is reduced by a salesperson” is referred to as “E”.
According to the conventional technique, within the match data 40, a window 50 corresponding to the condition of the window 31 in the query 30 and a window 60 corresponding to the condition of the window 32 are set. According to the conventional technique, it is judged whether the conditions of the windows 31 and 32 in the query 30 are satisfied, while each of the windows 50 and 60 is shifted by a unit time period at a time.
At the points in time when the start time of the window 50 is 1, 2, 7, 8, and 9, the condition of the window 31 in the query 30 is satisfied. The windows corresponding to the points in time when the start time of the window 50 is 1, 2, 7, 8, and 9 will be referred to as 50a, 50b, 50c, 50d, and 50e, respectively. Further, at the points in time when the start time of the window 60 is 13, 14, 17, and 18, the condition of the window 32 in the query 30 is satisfied. The windows corresponding to the points in time when the start time of the window 60 is 13, 14, 17, and 18 will be referred to as 60a, 60b, 60c, and 60d, respectively.
According to the conventional technique, for each of the combinations of the windows 50a to 50e and the windows 60a to 60e, it is judged whether the interval condition of the query 30 is satisfied thereby, so as to detect the events included in the sets of windows satisfying the interval condition. The sets of events detected in this manner satisfy the conditions of the query 30. In the example illustrated in FIG. 32, a set made up of the windows 50a and 60a and a set made up of the windows 50b and 60b each satisfy the conditions of the query 30. In addition, a set made up of the windows 50c and 60c, a set made up of the windows 50d and 60c, a set made up of the windows 50d and 60d, and a set made up of the windows 50e and 60d each satisfy the conditions of the query 30.
Patent Document 1: Japanese Laid-open Patent Publication No. 2004-46601
Patent Document 2: Japanese Laid-open Patent Publication No. 2009-134689
Patent Document 3: Japanese Laid-open Patent Publication No. 2010-108073
Patent Document 4: Japanese Laid-open Patent Publication No. 2013-8329
When the conventional technique described above is used, however, a problem remains where it is not possible to perform the matching procedure on the query and the match data at a high speed.
For example, according to the conventional technique, because a large number of windows satisfy the conditions of the windows in the query, the number of combinations of the windows is also large. Further, according to the conventional technique, it is judged whether the interval condition of the query is satisfied for each of the combinations. Thus, it is not possible to perform the matching procedure at a high speed.
In a first proposal, on the basis of a query, a computer sets second windows within match data in which each of events is kept in correspondence with the occurrence time of the event, the second windows each having a window width larger than that in a window width condition. Further, the computer judges whether the events in the match data included in the second windows and the interval between the second windows satisfy the event condition of the first window and the interval condition.